let baseUrl=$('#spiderUrl').val();
/**
 * 接口：@liuxin
 * */
$(function () {
    customerTranTable();
   /* tableList('customerSignTable',baseUrl+'/qccTag/selectTag',customerSignColumns,customerSignParams);*/
    // 高级筛选创建日期--配置参数
    $('.create-time').datetimepicker({
        format: 'YYYY-MM-DD HH:mm:ss',
        locale: moment.locale('zh-cn')
    })
    $('#createTmStart').on('dp.hide',function(){
        var startDate = $('#createTmStart').val();
        var endDate = $('#createTmEnd').val();
        if (endDate < startDate) {  // 对比结束日期和新的起止日期，起止日期大于结束日期则清空结束日期
            $('#createTmEnd').val('');
        }
    });
    $('#createTmEnd').on('dp.hide',function(){
        var startDate = $('#createTmStart').val();
        var endDate = $('#createTmEnd').val();
        if (endDate < startDate) {  // 对比结束日期和新的起止日期，起止日期大于结束日期则清空结束日期
            $('#createTmStart').val('');
        }
    });
    // 选择上传文件时，显示文件名称
    $('#importInput').on('change', function () {
        $('#progress > div').css('width', '0%');
        var file = document.getElementById('importInput').files[0];
        if (file) {
            $('#nameText').html(file.name);
        } else {
            $('#nameText').html('点击选择文件');
        }
    });
});
function enterpriseNameSearch(){
    clearSearchData();
    refreshTable('customerTranTable')
}
function localSearch(){
    $("#enterpriseName").val('');
    closeFilterContainer();
    refreshTable('customerTranTable')
}
//参数
function queryParams(params){
    params.pageSize = params.limit;
    params.pageIndex = (params.offset / params.limit) + 1;
    /*params.sortName = params.sort;
    params.sortOrder = params.order;*/
    params.enterpriseName=$.trim($("#enterpriseName").val());
    params.sysTag=$.trim($("#sysTagFilter").val());
    params.impStartTime=$("#createTmStart").val()?new Date($.trim($("#createTmStart").val())):'';
    params.impEndTime=$("#createTmEnd").val()?new Date($.trim($("#createTmEnd").val())):'';
    return deleteEmpty(params)
}
function deleteEmpty(obj){
    for(var key in obj){
        if(!obj[key]){
            delete obj[key]
        }
    }
    return obj
}
/**
 * 功能：客户调转列表初始化
 * */
function customerTranTable() {
    $('#customerTranTable').bootstrapTable('destroy');
    $('#customerTranTable').bootstrapTable({
        classes: 'table table-bordered table-hover table-striped',
        url: baseUrl + '/qcc/listByEs',
        method: 'post',                                     // 请求方式
        contentType: 'application/x-www-form-urlencoded',   // 请求内容类型
        dataType: 'json',                                   // 数据类型
        striped: true,                                      // 是否显示行间隔色
        sortable: true,                                     // 是否启用排序
        sortOrder: 'desc',                                  // 排序方式
        sortName: 'createTime',                               // 排序字段
        cache: false,                                       // 是否使用缓存
        showColumns: false,                                 // 显示隐藏列
        showRefresh: false,                                 // 显示刷新按钮
        showToggle: false,                                  // 切换显示样式
        showFooter: false,                                  // 显示Table脚部
        pagination: true,                                   // 是否显示分页
        showPaginationSwitch: false,                        // 是否显示分页按钮
        clickToSelect: true,                                // 是否启用点击选中行
        maintainSelected: true,                             // 分页是否保留选中
        singleSelect: false,
        undefinedText: '-',                                 // cell没有值时显示
        sidePagination: "server",                           // 分页方式：client客户端分页，server服务端分页
        uniqueId: 'id',
        idField: 'id',
        serverSelected: true,// 开启后端分页记住已选项功能
        serverSelectedField: 'id',// 已选项的唯一识别主键
        fixedColumns: true,     // 冻结列
        fixedNumber: 1,         // 左侧固定列
        fixedRightNumber:1,    // 右侧固定列
        pageSize: 20,//每页的记录行数
        pageNumber: 1,//初始化加载第1页，默认第1页
        pageList: [20,50],//可供选择的每页的行数
        queryParams: queryParams,  // 查询参数
        columns: [
            {title: '主键', field: 'id', visible: false},
            {title: '序号', align: 'left', valign: 'middle', width: '50',
                formatter: function (value, row, index) {
                    return index + 1;
                }
            },
            {title: '客户名称', field: 'enterpriseName', align: 'left', valign: 'middle'},
            {title: '标签', field: 'sysTag', align: 'left', valign: 'middle', width: '220', formatter: sysTagFormat},
            {title: '领用状态', field: 'isReceive', align: 'left', valign: 'middle', formatter: receiveFormat},
            {title: '导入时间', field: 'createTime', align: 'left', valign: 'middle'},
            {title: '操作', field: 'operate', align: 'right', valign: 'middle', width: '100', events: format, formatter: format.operate},
        ],
        responseHandler: function (result) {
            if (result.code == "000000") {
                var obj = {
                    "rows": result.data,
                    "total": result.totalRecords//总条数
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function (data) {
            $('[data-toggle="popover"]').popover({
                container: 'body',
                placement: 'right',
                trigger: 'hover',
                html: true,
                title: '客户调转信息',
            });
        },
        onLoadError: function (status) {
            if (status == 403) {
                $.alert("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                $.alert("加载失败！");
            }
        },
        onPreBody: function () {

        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    });
}

// 客户类型格式化
function receiveFormat(value, row, index) {
    let receiveText='-';
    switch(value){
        case 0:
            receiveText='<span class="label label-warning-light">未领取</span>';
            break;
        case 1:
            receiveText='<span class="label label-success-light">领取</span>';
            break;
    }
    return receiveText
}

// 标签格式化
function sysTagFormat(value) {
    if (value != null && value !== undefined && value !== '') {
        let signsArr=value.split(',');
        let html='';
        let classType='';
        signsArr=signsArr.filter(function(item){
            return item != null && item !== undefined && item !== ''
        });
        signsArr.filter(function(item,index){
            if(index%3==0){
                classType='greenCircle'
            }else if(index%3==1){
                classType='purpleCircle'
            }else if(index%3==2){
                classType='blueCircle'
            }
            html+=`<span class="signItem"><span class="circleMark ${classType}"></span>${item}</span>`

        })
        return html;
    } else {
        return '-'
    }
}

/**
 * 功能：table相关自定义功能
 * */
var format = {
    // 详情
    'click .detail': function (e, value, row, index) {
        $('#id').val(row.id);
        openTab("客户调转详情", '/front/customerManager/customerTranDetail?type=1&id=' + row.id)
    },

    // 主体table列表操作列格式化
    operate: function (value, row) {
        var operateHtml = '<button type="button" class="btn btn-default detail"><i class="mdi mdi-eye"></i>详细</button>';
        return operateHtml;
    },
};



/**
 * 功能：刷新表格
 * */
function refreshTable(id) {
    $('#' + id).bootstrapTable('refresh');
}
//清空搜索条件、重置查询条件
function clearSearchData(){
    $('#advanceFilterContainer input').val('');//清空--高级筛选input框
}

//校验是否通过
function bootstrapValidatorFlag(formId){
    var bootstrapValidator = $(`#${formId}`).data('bootstrapValidator');
    bootstrapValidator.validate();
    return bootstrapValidator.isValid()
}
function validatorStart(formId,validatorFun){
    var reasonFormValidator = $(`#${formId}`).data('bootstrapValidator');
    if (reasonFormValidator) {
        $(`#${formId}`).data('bootstrapValidator').destroy();
        $(`#${formId}`).data('bootstrapValidator', null);
    }
    validatorFun()
}

/*客户标签*/
//批量标记
let currentId = '';
let currentSign = '';
function openEditSign(){
    $("#editSignModal").modal('show');
    $("#newSign").val('');
    validatorStart('editSignForm',editSignFormValidator)

}
function editSignFormValidator(){
    $('#editSignForm').bootstrapValidator({
        fields: {
            newSign: {
                validators: {
                    notEmpty: {
                        message: '标签不能为空'
                    }
                }
            }
        }
    })
}
//提交标记
function submitNewSign(){
    var flag=bootstrapValidatorFlag('editSignForm');
    if(!flag){
        return;
    }
    var formData = new FormData();
    //接口接收参数 键值形式 添加到formData中
    formData.append("id", currentId);
    formData.append("sysTag", $.trim($("#newSign").val()));
    $.ajax({
        type: "post",
        url: baseUrl+'/qccTag/updateTag',
        dataType:"json",
        contentType: false,
        data: formData,
        processData: false,
        success: function (data) {
            if (data.code == '000000') {
                $.alert({
                    title:'提示',
                    content:'修改成功!'
                });
                $("#editSignModal").modal('hide');
                tableList('customerSignTable',baseUrl+'/qccTag/selectTag',customerSignColumns,customerSignParams);
            } else {
                $.alert({
                    title:'提示',
                    content:data.message
                });
            }
        },
        error: function () {
            $.alert({
                title:'提示',
                content:'修改失败，请稍后再试!'
            });
        }
    });
}
let signColumns=[
    {title: '主键', field: 'id', visible: false},
    {title: '客户名称', field: 'enterpriseName', align: 'left', valign: 'middle'},
    {title: '标签', field: 'sysTag', align: 'left', valign: 'middle', formatter: sysTagFormat}
]
let signParams=function(params){
    params.pageSize = params.limit;
    params.pageIndex = (params.offset / params.limit) + 1;
    /*params.sortName = params.sort;
    params.sortOrder = params.order;*/
    params.sysTag=currentSign;
    return params
};
let customerSignFormat={
// 详情
    'click .edit': function (e, value, row, index) {
        currentId=row.id;
        openEditSign();
    },
    'click .delete': function (e, value, row, index) {
        currentId=row.id;
        deleteCustomerSignOperate()
    },
    'click .useCountEvent': function (e, value, row, index) {
        currentSign=row.sysTag;
        $("#signDetailModal").modal('show');
        tableList("signTable",baseUrl+'/qcc/listByFindInSet',signColumns,signParams)
    },
    // table列表操作列格式化
    operate: function (value, row) {
        var operateHtml = `<button type="button" class="btn btn-default edit"><i class="mdi mdi-table-edit"></i>修改</button>`+
            `<button type="button" class="btn btn-default delete"><i class="mdi mdi-delete"></i>删除</button>`;
        return operateHtml;
    },
    useCountFormatOperate:function(value,row) {
        return `<span class="useCountEvent">${value}</span>`
    }
};

let customerSignColumns=[
    {title: '主键', field: 'id', visible: false},
    {title: '序号', align: 'left', valign: 'middle', width: '50',
        formatter: function (value, row, index) {
            return index + 1;
        }
    },
    {title: '标签名称', field: 'sysTag', align: 'left', valign: 'middle'},
    {title: '客户数量', field: 'useCount', align: 'left', valign: 'middle',events: customerSignFormat, formatter: customerSignFormat.useCountFormatOperate},
    {title: '操作', field: 'operate', align: 'right', valign: 'middle', width: '100', events: customerSignFormat, formatter: customerSignFormat.operate}
]
let customerSignParams=function(params){
    params.pageSize = params.limit;
    params.pageIndex = (params.offset / params.limit) + 1;
    /*params.sortName = params.sort;
    params.sortOrder = params.order;*/
    return params
};
function tableList(domId,url,columns,params) {
    $(`#${domId}`).bootstrapTable('destroy');
    $(`#${domId}`).bootstrapTable({
        classes: 'table table-bordered table-hover table-striped',
        url: url,
        method: 'post',                                     // 请求方式
        contentType: 'application/x-www-form-urlencoded',   // 请求内容类型
        dataType: 'json',                                   // 数据类型
        striped: true,                                      // 是否显示行间隔色
        sortable: true,                                     // 是否启用排序
        sortOrder: 'desc',                                  // 排序方式
        sortName: 'createTime',                               // 排序字段
        cache: false,                                       // 是否使用缓存
        showColumns: false,                                 // 显示隐藏列
        showRefresh: false,                                 // 显示刷新按钮
        showToggle: false,                                  // 切换显示样式
        showFooter: false,                                  // 显示Table脚部
        pagination: true,                                   // 是否显示分页
        showPaginationSwitch: false,                        // 是否显示分页按钮
        clickToSelect: true,                                // 是否启用点击选中行
        maintainSelected: true,                             // 分页是否保留选中
        singleSelect: false,
        undefinedText: '-',                                 // cell没有值时显示
        sidePagination: "server",                           // 分页方式：client客户端分页，server服务端分页
        uniqueId: 'id',
        idField: 'id',
        serverSelected: true,// 开启后端分页记住已选项功能
        serverSelectedField: 'id',// 已选项的唯一识别主键
        fixedColumns: true,     // 冻结列
        fixedNumber: 2,         // 左侧固定列
        fixedRightNumber:1,    // 右侧固定列
        pageSize: 20,//每页的记录行数
        pageNumber: 1,//初始化加载第1页，默认第1页
        pageList: [20,50],//可供选择的每页的行数
        queryParams: params,  // 查询参数
        columns: columns,
        responseHandler: function (result) {
            if (result.code == "000000") {
                var obj = {
                    "rows": result.data,
                    "total": result.totalRecords//总条数
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function (data) {

        },
        onLoadError: function (status) {
            if (status == 403) {
                $.alert("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                $.alert("加载失败！");
            }
        },
        onPreBody: function () {

        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    });
}
//客户标签删除操作
/*function deleteCustomerSignOperate(){
    $.confirm({
        title: '提示',
        content: '是否确认删除',
        buttons: {
            confirm: {
                text: '确认',
                btnClass: 'btn-primary',
                action:function(){
                    var formData = new FormData();
                    //接口接收参数 键值形式 添加到formData中
                    formData.append("id", currentId);
                    $.ajax({
                        type: "post",
                        url: baseUrl+'/qccTag/deleteTag',
                        dataType:"json",
                        contentType: false,
                        data: formData,
                        processData: false,
                        success: function (data) {
                            if (data.code == '000000') {
                                $.alert({
                                    title:'提示',
                                    content:'删除成功!'
                                });
                                tableList('customerSignTable',baseUrl+'/qccTag/selectTag',customerSignColumns,customerSignParams);
                            } else {
                                $.alert({
                                    title:'提示',
                                    content:data.message
                                });
                            }
                        },
                        error: function () {
                            $.alert({
                                title:'提示',
                                content:'删除失败，请稍后再试!'
                            });
                        }
                    });
                }
            },
            cancel: {
                text: '取消',
                btnClass: 'btn-primary',
                action: function () {
                    return;
                }
            }
        }
    });


}
function promptInfo(title, content, fun) {
    $.alert({
        title,
        content,
        buttons: {
            confirm: {
                text: '确认',
                btnClass: 'btn-primary',
                action: function () {
                    fun && fun();
                }
            }
        }
    });
}
// 重置上传模块
function uploadReset() {
    $('#importInput').val('');
    $('#nameText').html('点击选择文件');
}
// 上传按钮处理中状态
var btnLoading;
function importAction(element) {
    btnLoading = $(element).button('loading');
    var file = document.getElementById('importInput').files[0];
    // 验证是否选择上传文件
    if(!file){
        $.alert({
            title: '提示',
            content: '请选择要上传的文件！',
        });
        btnLoading.button('reset');
        return;
    }
    // 禁用取消按钮
    $(element).next('button').prop('disabled', true);
    var fileType = file.name.substring(file.name.lastIndexOf("."), file.name.length);
    var formData = new FormData();
    // 接口接收参数 键值形式 添加到formData中
    formData.append('multFile', file);
    if(fileType.toLocaleUpperCase()==".XLSX"){
        $.ajax({
            url: baseUrl+'/qccTag/importAddTag',
            type: 'POST',
            dataType: 'json',
            contentType: false,
            data: formData,
            processData: false,
            success:(function(data) {
                if(data.code == '000000'){
                    // 重置立即导入按钮状态
                    btnLoading.button('reset');
                    $('#customerSignTable').bootstrapTable('refresh');
                    $("#importTemplate").modal('hide');
                    $.alert("导入成功");
                }else{
                    promptInfo('失败', '导入失败，请重试！');
                    uploadReset();
                    // 重置立即导入按钮状态
                    btnLoading.button('reset');
                }
                // 取消禁用取消按钮
                $(element).next('button').prop('disabled', false);
            }),
            error:(function() {
                promptInfo('失败', '导入出错，请重试！');
                uploadReset();
                btnLoading.button('reset');
                // 取消禁用取消按钮
                $(element).next('button').prop('disabled', false);
            })
        });
    } else {
        promptInfo('提示', '文件格式类型必须为“.xlsx”，请重新选择！');
        uploadReset();
        btnLoading.button('reset');
    }
}
// 关闭上传弹窗时，重置弹窗内容状态
$('#importTemplate').on('hidden.bs.modal', function () {
    btnLoading && btnLoading.button('reset');
    uploadReset()
});*/
// 解决table中点击行选中与checkbox冲突问题
$('table').on('load-success.bs.table', function (e,data) {
    $(e.target).find('label.lyear-checkbox').on('click', function (e) {
        e.stopPropagation();
    })
});
